// 校验大全全局使用

// 在main.js中引用
import check from 'check.js';
Vue.prototype.$check = check;

// 组件中调用 if($check.isEmail(e)){}

// 这是check.js的文件
export default {
	// 不能超过多少字符
	validSe(value, number = 255) {
		value = value.replace(/[`～*~!@#$%^&*()_\-+=<>?:"{}|,./;'\\[\]·~！@#￥%……&*（）——\-+={}|《》？：“”【】、；‘’，。、]/g, '').replace(
			/\s/g, "");
		if (value.length >= number) {
			this.$message({
				type: "warning",
				message: `输入内容不能超过${number}个字符`
			});
		}
		return value;
	},
	//匹配小数点后两位
	doubleTwoPoint(value) {
		return(/^(\d+\.\d{2})$/).test(value)
	},
	// 验证非零的正整数和两位小数
	numberNoZeroNumberPoint(value) {
		return(/(^\+?[1-9][0-9]*$)|(^(\d+\.\d{2})$)/).test(value)
	},
	// 验证大于等于0的正整数和小数点后最多俩位
	numberCheckPoint() {
		return(/(^\+?[0-9][0-9]*$)|(^(\d+\.\d{1,2})$)/).test(value)
	},
	// 验证非零的正整数
	numberNoZeroPosiReg(value) {
		return(/^\+?[1-9][0-9]*$/).test(value)
	},
	// 大于等于0的正整数,不允许小数
	numberCheck(value) {
		return(/^\+?[0-9][0-9]*$/, '').test(value)
	},
	// js清空特殊字符
	EmptySpecial(value) {
		value = value.replace(/[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~！@#￥%……&*（）——\-+={}|《》？：“”【】、；‘'，。、]/g, "")
		return value
	},
	// 只能输入汉字、英文、数字
	chineseNumberLetter() {
		return(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5]/g).test(value)
	},
	// 只可输入数字 
	numberOnly(value) {
		return(/[^\d]/g).test(value)
	},
	//只能输汉字
	chineseOnly(value) {
		value = value.replace(/[^\u4E00-\u9FA5]/g, '');
		return value
	},
	//只能输正整数
	idNumberOnly(value) {
		value = value.replace(/[^0-9]/g, '');
		return value
	},
	//不允许输汉字
	noChineseOnly(value) {
		value = value.replace(/[\u4E00-\u9FA5]/g, '');
		return value
	},
	//逗号和数字
	programIdOnly(value) {
		value = value.replace(/[^0-9,]/g, '');
		return value
	},
	//数字和回车
	idsOnly(value) {
		value = value.replace(/[^\r\n0-9]/g, '');
		return value
	},
	//数值大小限定
	numberLimit(value) {
		value = value.replace(/[^0-9]/g, '');
		if (value >= 2147483647) {
			this.$message({
				type: "warning",
				message: `最大可输入值为2147483647`
			});
		}
		return value
	},
	// 正整数
	onlyPositiveInteger(value) {
		value = String(value).match(/[1-9]\d*/g, "")
		return value === null ? '' : Number(value[0])
	},
	// 正整数（包含0）
	onlyPositiveInteger1(value) {
		console.log(typeof(value));

		value = String(value).match(/[1-9]\d*|0/g, "")
		return value === null ? '' : Number(value[0])
	},
	// 负整数
	onlyNegativeInteger(value) {
		value = String(value).match(/^-[1-9]*\d*/g, "")
		return value === null ? '' : value[0] === '-' ? '-' : value[0] === '-0' ? '' : Number(value[0])
	},
	// 负整数（包含0）
	onlyNegativeInteger1(value) {
		value = String(value).match(/^-[1-9]*\d*|0/g, "")
		return value === null ? '' : value[0] === '-' ? '-' : Number(value[0])
	},
	// 整数
	onlyInteger(value) {
		value = String(value).match(/^-?[1-9]*\d*|0/g, '')
		return value === null ? '' : value[0] === '-' ? '-' : value[0] === '' ? '' : Number(value[0])
	},
	// 整数区间
	onlySection(value, min, max) {
		if (min < 0) {
			value = String(value).match(/-?[1-9]*\d*/g, "")
		} else {
			value = String(value).match(/[1-9]*\d*/g, "")
		}
		value = value === null ? '' : value[0] === '-' ? '-' : value[0] === '' ? '' : Number(value[0])
		if (value < min) {
			return min
		} else if (value > max) {
			return max
		} else {
			return value
		}
	}

}
